package org.bird.jvm;

/**
 * @Described：长期存活对象将进入老年代探究
 * @VM args : -Xms20m -Xmx20m -Xmn10m -XX:SurvivorRatio=8 -XX:+PrintHeapAtGC -XX:+PrintGCDetails -XX:+UseParNewGC -XX:MaxTenuringThreshold=1
 * 限制java堆大小为20M，年轻代为10M，Eden为8M，两个survivor分别为1M，打印GC前后的详细堆栈信息，打印GC详细信息，设置年轻代为并行收集，新生代垃圾最大年龄为1
 * @author liangjf
 *
 */
public class MaxTenuringThreshold {

	private static final int _1MB = 1024 * 1024;

	@SuppressWarnings("unused")
	public static void main(String[] args) {
		System.out.println("step 1");
		byte[] b1 = new byte[1 * _1MB / 4];
		System.out.println("step 2");
		byte[] b2 = new byte[4 * _1MB];
		System.out.println("step 3");
		byte[] b3 = new byte[4 * _1MB];// GC
		System.out.println("step 4");
		b3 = null;
		System.out.println("step 5");
		b3 = new byte[4 * _1MB];// GC
	}
}
